package com.ktwlrj.securitycenter.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ktwlrj.core.base.SuperServer;
import com.ktwlrj.securitycenter.controller.args.SafeApproveArgs;
import com.ktwlrj.securitycenter.controller.args.SafeInterceptApplyArgs;
import com.ktwlrj.securitycenter.controller.args.SafeInterceptArgs;
import com.ktwlrj.securitycenter.controller.args.SafeInterceptPageArgs;
import com.ktwlrj.securitycenter.dto.SafeInterceptDto;
import com.ktwlrj.securitycenter.dto.SafeInterceptPageDto;
import com.ktwlrj.securitycenter.entity.SafeInterceptEntity;

/**
 * (SafeIntercept)业务层接口
 *
 * @author code generation
 * @date 2020-02-24 18:08:13
 * @since JDK1.8
 */
public interface SafeInterceptService extends SuperServer<SafeInterceptEntity> {
    /**
     * 保存
     *
     * @param args     ${@link SafeInterceptArgs}
     * @throws RuntimeException ${@link RuntimeException}
     * @author code generation
     * @date 2020-02-24 18:08:13
     */
    void save(SafeInterceptArgs args) throws RuntimeException;


    /**
     * 通过id更新
     *
     * @param args ${@link SafeInterceptArgs}
     * @throws RuntimeException ${@link RuntimeException}
     * @author code generation
     * @date 2020-02-24 18:08:13
     */
    void updateById(SafeInterceptArgs args) throws RuntimeException;


    /**
     * 提交
     *
     * @param args
     * @throws RuntimeException
     */
    void submit(SafeInterceptApplyArgs args) throws RuntimeException;


    /**
     * 变更提交
     * @param args
     * @throws RuntimeException
     */
    void changeInsert(SafeInterceptArgs args) throws RuntimeException;


    /**
     * 删除申请
     *
     * @param args
     * @throws RuntimeException
     */
    void deleteApply(SafeInterceptApplyArgs args) throws RuntimeException;


    /**
     * 审批提交
     * @param args
     * @throws RuntimeException
     */
    void approveSubmit(SafeApproveArgs args) throws RuntimeException;


    /**
     * 分页查询
     *
     * @param args ${@link SafeInterceptPageArgs}
     * @return IPage<SafeInterceptPageDto> ${@link IPage<SafeInterceptDto>}
     * @throws RuntimeException ${@link RuntimeException}
     * @author code generation
     * @date 2020-02-24 18:08:13
     */
    IPage<SafeInterceptPageDto> page(SafeInterceptPageArgs args) throws RuntimeException;


    /**
     * 通过id查询详情
     *
     * @param id
     * @return
     * @throws RuntimeException
     */
    SafeInterceptEntity getEntityById(String id) throws RuntimeException;


    /**
     * 通过id查询详情
     *
     * @param id ${@link String}
     * @return SafeInterceptDto ${@link SafeInterceptDto}
     * @throws RuntimeException ${@link RuntimeException}
     * @author code generation
     * @date 2020-02-24 18:08:13
     */
    SafeInterceptDto getById(String id) throws RuntimeException;


    /**
     * 删除一条信息
     * @param interceptId 预警拦截id
     * @throws RuntimeException
     */
    void deletedById(String interceptId) throws RuntimeException;
}